package com.lmabbe.tenant.objects.converter;

import com.lmabbe.tenant.objects.dto.ModuleResourceDTO;
import com.lmabbe.tenant.objects.entity.ModuleResource;
import com.lmabbe.tenant.objects.vo.ModuleResourceTreeVO;
import com.lmabbe.tenant.objects.vo.ModuleResourceVO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;

import java.util.List;

/**
 * 模块资源表 转换器
 *
 * @author lmabbe
 */
@Mapper(componentModel = "spring")
public interface ModuleResourceConverter {

    /**
     * dto转实体
     *
     * @param to
     * @return
     */
    ModuleResource dto2Entity(ModuleResourceDTO to);

    /**
     * dto转实体
     *
     * @param to
     * @return
     */
    @Mapping(target = "resourceId", source = "resourceId")
    ModuleResource dto2Entity(ModuleResourceDTO to, Long resourceId);

    /**
     * 数据列表转Vo列表
     *
     * @param list
     * @return
     */
    List<ModuleResourceVO> list2Vos(List<ModuleResource> list);

    /**
     * 实体转VO
     *
     * @param entity
     * @return
     */
    ModuleResourceVO entity2Vo(ModuleResource entity);

    /**
     * @param sysDicItems
     * @return
     */
    List<ModuleResourceTreeVO> dto2TreeVos(List<ModuleResource> sysDicItems);

}